package com.letoken.platform.job.jobhandler.monitor;

import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import com.letoken.platform.pub.constant.ConstantsValue;
import com.letoken.platform.pub.enums.LetokenTokenTypeEnum;
import com.letoken.platform.repo.app.dao.AppUserWalletAddMapper;
import com.letoken.platform.repo.app.dao.AppUserWalletMapper;
import com.letoken.platform.repo.app.po.AppUserWallet;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@Component
@Log4j2
public class TempOnceJob {

    @Autowired
    AppUserWalletMapper appUserWalletMapper;
    @Autowired
    AppUserWalletAddMapper appUserWalletAddMapper;

//
//
//    @PostConstruct
//    public void tempOne() {
//        // 所有usdt的有余额的钱包记录
//       LambdaQueryWrapper<AppUserWallet> lqwAuw = new LambdaQueryWrapper<>();
//       lqwAuw.eq(AppUserWallet::getTokenId,1)
//               .gt(AppUserWallet::getAvailableBalance,BigDecimal.ZERO )
//               .select(AppUserWallet::getId,AppUserWallet::getUserId,AppUserWallet::getAvailableBalance);
//       List<AppUserWallet> list = appUserWalletMapper.selectList(lqwAuw);
//       if (CollectionUtils.isNotEmpty(list)){
//           list.stream().forEach(x->{
//               try {
//                   SpringUtil.getBean(TempOnceJob.class).dro(x);
//               } catch (Exception e) {
//                   log.info("用户修改失败! {}",x.getUserId(),e);
//               }
//           });
//       }
//
//
//    }
//
//    @Transactional(rollbackFor = Exception.class)
//    public void dro(AppUserWallet appUserWallet){
//        Integer letId = appUserWalletMapper.checkoutTokenIdAndUserId(2,appUserWallet.getUserId());
//        AppUserWallet uW = appUserWalletMapper.selectForUpdate(appUserWallet.getId());
//        AppUserWallet lW = appUserWalletMapper.selectForUpdate(letId);
//
//
//        AppUserWallet newUw = new AppUserWallet();
//        newUw.setId(uW.getId());
//        newUw.setAvailableBalance(BigDecimal.ZERO);
//        appUserWalletMapper.updateById(newUw);
//
//        AppUserWallet newLw = new AppUserWallet();
//        newLw.setId(lW.getId());
//        newLw.setAvailableBalance(lW.getAvailableBalance().add( uW.getAvailableBalance()));
//        appUserWalletMapper.updateById(newLw);
//
//    }



}
